package net.qiqbframework.common.resolving;

import java.util.Map;

/**
 * 已解析的注解属性
 */
public interface ResolvedAttributes {

    String MESSAGE_TYPE = "MessageHandler.messageType";

    String PAYLOAD_TYPE = "MessageHandler.payloadType";

    String COMMAND_NAME = "CommandHandler.commandName";

    String RESULT_TYPE = "ResultHandler.resultType";

    String EXCEPTION_RESULT_TYPE = "ExceptionHandler.resultType";

    <R> R get(String attributeKey);


    Map<String, Object> getAll();


    boolean contains(String attributeKey);


    boolean isEmpty();

    ResolvedAttributes mergedWith(ResolvedAttributes other);
}
